130. Surrounded Regions - LeetCode Solution


Depth-first Search

Python Code:

class Solution:
    def solve(self, board: List[List[str]]) -> None:
        def Erase(rid, cid):
            if rid < 0 or cid < 0 or rid > len(board) -1 or cid > len(board[0]) -1 or board[rid][cid] in ('X', 'E'):
                return
            board[rid][cid] = 'E'
            Erase(rid-1, cid)
            Erase(rid+1, cid)
            Erase(rid, cid-1)
            Erase(rid, cid+1)
            
            
        for rid, row in enumerate(board):
            for cid, column in enumerate(row):
                if rid == 0 or cid == 0 or rid == len(board) -1 or cid == len(board[0])-1:
                    if board[rid][cid] == 'O':
                        Erase(rid, cid)
    
        for rid, row in enumerate(board):
            for cid, column in enumerate(row):
                if board[rid][cid] == 'O':
                    board[rid][cid] = 'X'
                if board[rid][cid] == 'E':
                    board[rid][cid] = 'O'


Comments

Submit
0 Comments
More Questions

1006A - Adjacent Replacements
1195C - Basketball Exercise
1206A - Choose Two Numbers
1438B - Valerii Against Everyone
822A - I'm bored with life
9A - Die Roll
1430B - Barrels
279B - Books
1374B - Multiply by 2 divide by 6
1093B - Letters Rearranging
1213C - Book Reading
1468C - Berpizza
1546B - AquaMoon and Stolen String
1353C - Board Moves
902A - Visiting a Friend
299B - Ksusha the Squirrel
1647D - Madoka and the Best School in Russia
1208A - XORinacci
1539B - Love Song
22B - Bargaining Table
1490B - Balanced Remainders
264A - Escape from Stones
1506A - Strange Table
456A - Laptops
855B - Marvolo Gaunt's Ring
1454A - Special Permutation
1359A - Berland Poker
459A - Pashmak and Garden
1327B - Princesses and Princes
1450F - The Struggling Contestant